package com.demo.java.OD501_550.OD526;

import java.util.Scanner;
import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【学生方阵(B卷-100分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146494307
 */
public class OdMain {
    public static void main(String[] args) {
        // 处理输入
        Scanner in = new Scanner(System.in);
        String[] input_str = in.nextLine().split(",");
        int m = Integer.parseInt(input_str[0]); // 获取行数
        int n = Integer.parseInt(input_str[1]); // 获取列数

        // 构造学生矩阵
        String[][] matrix = new String[m][n];
        for (int i = 0; i < m; i++) {
            String[] s1 = in.nextLine().split(",");
            for (int j = 0; j < n; j++) {
                matrix[i][j] = s1[j]; // 填充矩阵
            }
        }

        // 逐个元素判定，计算最大连续的'M'
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (matrix[i][j].equals("M")) {
                    getMaxBoyCount(matrix, i, j, list); // 从'M'位置开始，计算最大连续的'M'
                }
            }
        }
        Collections.sort(list); // 排序，找出最大值
        System.out.println(list.get(list.size() - 1)); // 输出最大连续'M'的个数
    }

    // 计算给定位置最大连续'M'的数量
    public static void getMaxBoyCount(String[][] matrix, int i, int j, List<Integer> list) {
        int len = 1; // 初始化连续的'M'数
        int a = 0, b = 0;
        int m = matrix.length, n = matrix[0].length;

        // 从左往右检查
        if (j < n) {
            a = i;
            b = j;
            while (b < n - 1 && matrix[a][++b].equals("M")) {
                len++; // 连续'M'数加一
            }
            list.add(len); // 将当前连续的'M'数加入列表
            len = 1; // 重置长度
        }

        // 从上往下检查
        if (i < m) {
            a = i;
            b = j;
            while (a < m - 1 && matrix[++a][b].equals("M")) {
                len++;
            }
            list.add(len);
            len = 1;
        }

        // 对角线检查（左上到右下）
        if (i < m && j < n) {
            a = i;
            b = j;
            while ((a < m - 1 && b < n - 1) && matrix[++a][++b].equals("M")) {
                len++;
            }
            list.add(len);
            len = 1;
        }

        // 对角线检查（右上到左下）
        if (i >= 0 && j < n) {
            a = i;
            b = j;
            while ((a > 0 && b < n - 1) && matrix[--a][++b].equals("M")) {
                len++;
            }
            list.add(len);
        }
    }
}